{"version":3,"file":"static/chunks/pages/search/[[...archive]]-7494809caf75e79f.js","mappings":"2aACA,CAAAA,OAAAC,QAAA,CAAAD,OAAAC,QAAA,MAAAC,IAAA,EACA,yBACA,WACA,OAAeC,EAAQ,KACvB,EACA,8ECiEAC,CAAAA,EAAAC,CAAA,CAnEmB,QA4BGC,EA2BAA,KAvDF,CAAEC,SAAAA,CAAQ,CAAEC,YAAAA,CAAW,CAAEC,OAAAA,EAAS,EAAE,CAAEC,WAAAA,CAAU,CAAE,CAAAC,EAE9DC,EAAQC,CAAAA,EAAAA,EAAAA,CAAAA,EAAeL,EAAaE,GAG1C,SAASJ,EAAYQ,CAAI,SACvB,IAAIA,EACK,GAAcL,MAAAA,CAAXF,GAAkBQ,MAAA,CAAPN,GAEhB,GAAoBK,MAAAA,CAAjBP,EAAS,UAAeE,MAAAA,CAAPK,GAAcC,MAAA,CAAPN,EACpC,CAEA,SAASO,EAAiBF,CAAI,EAC5B,OAAOA,IAASN,EACZ,4CACA,+FACN,CAEA,OACEI,GACAA,EAAMK,MAAM,CAAG,GACb,GAAAC,EAAAC,GAAA,EAACC,MAAAA,CAAIC,UAAU,kCACb,GAAAH,EAAAI,IAAA,EAACC,KAAAA,CAAGF,UAAU,oGACXb,EAAc,GACb,GAAAU,EAAAC,GAAA,EAACK,KAAAA,CAAGH,UAAU,wDACZ,GAAAH,EAAAC,GAAA,EAACM,IAAIA,CACHC,aAAW,gBACXL,UAAWL,IACXW,KAAMrB,OAAAA,CAAAA,EAAAA,EAAYE,EAAc,KAA1BF,KAAAA,IAAAA,EAAAA,EAAgC,YACvC,WAMJM,EAAMgB,GAAG,CAAC,QAQCtB,QAPV,GAAAY,EAAAC,GAAA,EAACK,KAAAA,CAECH,UAAU,wDAEV,GAAAH,EAAAC,GAAA,EAACM,IAAIA,CACHC,aAAY,QAAmBX,MAAA,CAAXc,GACpBR,UAAWL,EAAiBa,GAC5BF,KAAMrB,OAAAA,CAAAA,EAAAA,EAAYuB,EAAAA,GAAZvB,KAAAA,IAAAA,EAAAA,EAA2B,YAEhCuB,KAREA,EAUH,GAGLrB,EAAcE,GACb,GAAAQ,EAAAC,GAAA,EAACK,KAAAA,CAAGH,UAAU,wDACZ,GAAAH,EAAAC,GAAA,EAACM,IAAIA,CACHC,aAAW,YACXL,UAAWL,IACXW,KAAMrB,OAAAA,CAAAA,EAAAA,EAAYE,EAAc,KAA1BF,KAAAA,IAAAA,EAAAA,EAAgC,YACvC,eASf,4ICmBAF,CAAAA,EAAA,QAlFsB,OAAC,CACrB0B,YAAAA,CAAW,CACXC,SAAAA,CAAQ,CACRvB,YAAAA,CAAW,CACXwB,WAAAA,CAAU,CACVC,IAAAA,CAAG,CACHvB,WAAAA,CAAU,CACX,CAAAC,QACC,GAAAO,EAAAI,IAAA,EAAAJ,EAAAgB,QAAA,YACE,GAAAhB,EAAAC,GAAA,EAACgB,EAAAA,CAAIA,CAAAA,CAACF,IAAKA,IACX,GAAAf,EAAAC,GAAA,EAACiB,KAAAA,CAAGf,UAAU,uGACX,GAAiCW,MAAAA,CAA9BK,EAAAA,CAAMA,CAACC,mBAAmB,CAAC,KAAcvB,MAAA,CAAXiB,KAEnCD,OAAAA,GAAqBA,IAAAA,EAASd,MAAM,CACnC,GAAAC,EAAAC,GAAA,EAACoB,IAAAA,CAAElB,UAAU,uBAAegB,EAAAA,CAAMA,CAACG,eAAe,GAElD,GAAAtB,EAAAI,IAAA,EAAAJ,EAAAgB,QAAA,YACE,GAAAhB,EAAAC,GAAA,EAACsB,EAAAA,CAAQA,CAAAA,CAACC,MAAOX,EAAUY,cAAa,KACxC,GAAAzB,EAAAC,GAAA,EAACyB,EAAAA,CAAUA,CAAAA,CACTrC,SAAUuB,EACVtB,YAAaA,EACbC,OAAQ,SAAoBM,MAAA,CAAXiB,GACjBtB,WAAYA","sources":["webpack://_N_E/?dad7","webpack://_N_E/./components/Pagination.js","webpack://_N_E/./pages/search/[[...archive]].js"],"sourcesContent":["\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/search/[[...archive]]\",\n function () {\n return require(\"private-next-pages/search/[[...archive]].js\");\n }\n ]);\n if(module.hot) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/search/[[...archive]]\"])\n });\n }\n ","import Link from \"next/link\";\n\nimport { getPageNumbers } from \"@/utilities/pagination\";\n\nconst Pagination = ({ basePath, currentPage, params = \"\", totalPages }) => {\n // Generate visible page numbers\n const pages = getPageNumbers(currentPage, totalPages);\n\n // Create page link\n function getPageLink(page) {\n if (page === 1) {\n return `${basePath}${params}`;\n }\n return `${basePath}/page/${page}${params}`;\n }\n\n function getPageClassName(page) {\n return page === currentPage\n ? \"block p-4 bg-blue text-white leading-[1]\"\n : \"block p-4 text-blue focus:text-white focus:bg-blue hover:text-white hover:bg-blue leading-[1]\";\n }\n\n return (\n pages &&\n pages.length > 1 && (\n <div className=\"mb-0 mt-8 flex lg:mb-4\">\n <ul className=\"mx-auto flex flex-row overflow-hidden rounded-lg border border-card-border bg-off-white\">\n {currentPage > 1 && (\n <li className=\"border-l border-card-border first:border-l-0\">\n <Link\n aria-label=\"Previous Page\"\n className={getPageClassName()}\n href={getPageLink(currentPage - 1) ?? \"\"}\n >\n «\n </Link>\n </li>\n )}\n\n {pages.map((pageNumber) => (\n <li\n key={pageNumber}\n className=\"border-l border-card-border first:border-l-0\"\n >\n <Link\n aria-label={`Page ${pageNumber}`}\n className={getPageClassName(pageNumber)}\n href={getPageLink(pageNumber) ?? \"\"}\n >\n {pageNumber}\n </Link>\n </li>\n ))}\n\n {currentPage < totalPages && (\n <li className=\"border-l border-card-border first:border-l-0\">\n <Link\n aria-label=\"Next Page\"\n className={getPageClassName()}\n href={getPageLink(currentPage + 1) ?? \"\"}\n >\n »\n </Link>\n </li>\n )}\n </ul>\n </div>\n )\n );\n};\n\nexport default Pagination;\n","import CardGrid from \"@/components/cardGrid/CardGrid\";\nimport Head from \"@/components/Head\";\nimport Pagination from \"@/components/Pagination\";\nimport labels from \"@/config/labels\";\nimport { getPostArchives } from \"@/pages/api/apiWP\";\n\nconst SearchArchive = ({\n archivePath,\n archives,\n currentPage,\n searchTerm,\n seo,\n totalPages,\n}) => (\n <>\n <Head seo={seo} />\n <h1 className=\"mb-8 font-heading text-2xl font-bold capitalize leading-[1.15] text-nav-blue sm:text-[2rem]\">\n {`${labels.searchResultsPrefix} ${searchTerm}`}\n </h1>\n {archives === null || archives.length === 0 ? (\n <p className=\"text-center\">{labels.searchNoResults}</p>\n ) : (\n <>\n <CardGrid items={archives} imagePriority />\n <Pagination\n basePath={archivePath}\n currentPage={currentPage}\n params={`?term=${searchTerm}`}\n totalPages={totalPages}\n />\n </>\n )}\n </>\n);\n\nexport async function getServerSideProps(context) {\n const searchTerm = context?.query?.term;\n // Redirect to homepage if no search term\n if (!searchTerm) {\n return { redirect: { destination: \"/\" } };\n }\n\n const paths = context?.query?.archive;\n\n // Page is a valid archive page if there is no page\n // number or url matches /page/number\n const isValidArchivePage =\n !paths?.[0] || (paths?.[0]?.toLowerCase() === \"page\" && paths?.[1]);\n // If url is not a valid archive page, redirect to\n // first page of results if search term provided or\n // return 404\n if (!isValidArchivePage) {\n return paths?.[0]?.toLowerCase() === \"page\"\n ? { redirect: { destination: `/search?term=${searchTerm}` } }\n : { notFound: true };\n }\n\n const page = paths?.[1];\n // Redirect to first page if path is 0 or 1, or not a number\n if (page && (page === \"0\" || page === \"1\" || !/^\\d*$/g.test(page))) {\n return { redirect: { destination: `/search?term=${searchTerm}` } };\n }\n\n // Fetch post archives based on page number and search term\n const pageNumber = paths?.[1] ? parseInt(paths?.[1]) : 0;\n const archives = await getPostArchives({\n type: \"search\",\n value: searchTerm,\n pageNumber,\n });\n const currentPage = paths?.[1] ? parseInt(paths?.[1]) : 1;\n // Construct seo\n const seo = {\n title: `${labels?.searchPageTitlePrefix} ${searchTerm}`,\n metaDesc: `${labels?.searchPageDescriptionPrefix} ${searchTerm}`,\n };\n\n return {\n props: {\n ...archives,\n archivePath: \"/search\",\n currentPage,\n searchTerm,\n seo,\n },\n };\n}\n\nexport default SearchArchive;\n"],"names":["window","__NEXT_P","push","__webpack_require__","__webpack_exports__","Z","getPageLink","basePath","currentPage","params","totalPages","param","pages","getPageNumbers","page","concat","getPageClassName","length","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","jsx","div","className","jsxs","ul","li","Link","aria-label","href","map","pageNumber","archivePath","archives","searchTerm","seo","Fragment","Head","h1","labels","searchResultsPrefix","p","searchNoResults","CardGrid","items","imagePriority","Pagination"],"sourceRoot":""}